搜索结果
0000-00-00
我想让我的程序平滑退出,为什么截获sigterm 信号不管用啊?
0000-00-00
swarm 环境中怎么指定某个容器在指定的宿主上运行呢?
每个
dockerhost 建立时都可以通过--label 指定其
docker引擎的标签,比如:dockerd --label com.example.environment production --label com.example.storage ssd 注意,上面的配置参数应该配置在
docker引擎的配置文件里修改,如docker.service ,而不是简单的命令行执行然后运行容器时,使用环境变量约束调度即可。可以使用compose 文件的environment 配置,也可以使用
dockerrun 的-e 环境变
0000-00-00
为什么swarm 集群的overlay network 跨宿主无法互访?
址是否配置正确。对于二代swarm ,则检查一下创建、加入swarm 的时候,--advertise-addr 是否填写正确。宣告地址必须是全集群可以互访的,由于该地址端口是
dockerremote api 端口,所以可以用curl 来连接其它节点,以判断互通性。然后,检查宿主间的网络互通问题,特别是宿主的防火墙开启的情况下,检
0000-00-00
如何删除私 有registry 中的镜像?
首先,在默认情况下,
dockerregistry 是不允许删除镜像的,需要在配置config.yml 中启用:delete: enabled: true 然后,使用api get /v2/< 镜像名> /manifests/ 来取得要删除的镜像:tag 所对应的digest 。registry 2.3 以后,必须
加入头accept: application/vnd.docker.distribution.manifest.v2 json ,否则取到的digest 是错误的,这是为了防止误删除。比如,要删除myimage:latest 镜像,那么取得digest 的命令是:
0000-00-00
自己架的registry 怎么任何用户都可以取到镜像?这不安全啊?
那是因为没
有加认证,不
加认证的意思就是允许任何人访问的。添
加认证
有两种方式:registry 配置中
加入认证:https://docs.docker.com/registry/configuration/ /auth auth: token: realm: token-realm service: token-service issuer: registry-token-issuer rootcertbundle: /root/certs/bundle htpasswd: realm: basic-realm path: /path/to/htpasswd 前端架设nginx 进行认证:https://docs.docker.com/registry/recipes/nginx/ location /v2/ ... authbasic registry realm authbasicuserfile /etc/nginx/conf.d/nginx.htpasswd ...
0000-00-00
挂载宿主目录,结果permission denied ,没权限
原因是centos/rhel 中的selinux 限制了目录权限。需要添
加规则。下面是man docker-run 的解释:when   using   selinux   be   aware that the host has no knowledge of container selinux policy. therefore in the above example if selinux policy   is enforced the /var/db directory is not   writable to the container. a permission denied message will occur and an avc: message in the host s syslog. to   work   around   this at time of writing this man page the following command needs to be run in order for the   proper   selinux   policy   type
0000-00-00
centos 7/rhel 7 升级1.12 后,无法启动,怎么回事?
一些人在升级之后,启动
docker时发现无法启动,而在报错中看到:unit docker.socket failed to load: no such file or directory. 其原因是由于从1.12 开始,不需要在systemd 中写个docker.socket 文件了,所以这个文件就随升级而删除了。而docker.service 由于被修改过(或别的什么原因),导致yum 升级的时候没
有替换这个文件。于是出现了旧的docker.service
0000-00-00
为什么在mac 下挂载宿主目录/usr/local/nginx 不成功?
虽然
docker团队尽量让使用
dockertoolbox
dockerfor mac and
dockerfor windows 的用户感觉操作
docker就像在linux 下一样,但实际上在mac/windows 上并非是直接运行
docker的。中间经过了一个linux 虚拟机,而
docker运行在那个虚拟机里。因此mac 主机上的目录实际上并不是
docker眼中的宿主目录,为了让用户尽量感觉不到这个差异,boot2
docker或者


